package coreBiz

import (
	"log"
	"strconv"
	"time"
)

var loc *time.Location

func init() {
	// 加载时区（需提前初始化）
	locTmp, err := time.LoadLocation("Asia/Shanghai")
	if err != nil {
		log.Fatal("加载时区失败:", err)
	}
	loc = locTmp
}

// NowString 获取当前时间 字符串
func NowString() string {
	return time.Now().Format(time.DateTime)
}

// NowUnixString 获取当前时间戳 字符串
func NowUnixString() string {
	return strconv.Itoa(int(time.Now().Unix()))
}

// NowUnix 获取当前时间戳
func NowUnix() int64 {
	return time.Now().Unix()
}
func Today() string {
	return time.Now().Format(time.DateOnly)
}

func Now() time.Time {
	return time.Now()
}

// IsZeroTime 空时间
func IsZeroTime(tm time.Time) bool {
	return tm.IsZero()
}

func StrToLocalTimeWithNoError(tm string) time.Time {
	ctm, err := StrToLocalTime(tm)
	if err != nil {
		println(err.Error())
	}
	return ctm
}

func TimestampToTime(timestamp int64) time.Time {
	return time.Unix(timestamp, 0)
}

// StrToLocalTime 转本地时间
func StrToLocalTime(tm string) (time.Time, error) {
	tt, err := time.ParseInLocation(time.DateTime, tm, loc) //2006-01-02 15:04:05是转换的格式如php的"Y-m-d H:i:s"

	if err != nil {
		return time.Time{}, err
	}
	return tt, nil
}
